# -*- coding: UTF-8 -*-
"""
    TweMoi, aplicación Android para la interacción con redes sociales
    Copyright (C) 2011
        * Autor: Moisés Vázquez Sánchez
        * Tutor: Jesús M. González Barahona
    
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
"""

from xml.sax.handler import ContentHandler
from models import Amigo

class parserTwitter(ContentHandler):

    def __init__ (self, user):
        self.amigos = []
        self.user = user
        
        self.inItem = False
        self.inItemUser = False
        self.inContent = False
        self.theContent = ""
        
        self.screen_name = ""
        self.id_name = ""
        self.url_userimagen = ""
        
    def startElement (self, name, attrs):
       
        if name == 'user':
            self.inItem = True
            
        elif self.inItem:
            
            if (self.inItemUser):
                if name == 'id':
                    self.inContent = True

            elif name == 'id':
                self.inContent = True
            elif name == 'profile_image_url':
                self.inContent = True
            elif name == 'screen_name':
                self.inContent = True
            elif name == 'user':
                self.inItemUser = True


    def endElement (self, name):

        if name == 'status':
            # Store tuple (title, link) in list links
            self.amigos.append(Amigo(
                                         author = self.user,
                                         user_twemoi = self.user.nickname(),
                                         nombre_amigo = self.screen_name,
                                         id_user_red = self.id_name,
                                         red = "Twitter",
                                         urlImage = self.url_userimagen
                                         ))           
            self.inItem = False
        
        elif self.inItem:
            if (self.inItemUser):
                if (name == 'id'):
                    self.inContent = False
                    self.theContent = ""
                elif name == 'user':
                    self.inItemUser = False  
            
            elif name == 'id':
                self.id_name = self.theContent
                self.inContent = False
                self.theContent = ""
            
            elif name == 'profile_image_url':
                self.url_userimagen =  self.theContent
                self.inContent = False
                self.theContent = ""
            
            elif name == 'screen_name':
                self.screen_name = self.theContent
                self.inContent = False
                self.theContent = ""              


    def characters (self, chars):
        if self.inContent:
            self.theContent = self.theContent + chars
            
    def getAmigos(self):
        return self.amigos